#Python 学习
from os import remove
from urllib.request import proxy_bypass_registry

#列表 和 元组
#二者区别 : 列表可以被改变 , 元组一旦创建就不可改变

#列表

#列表和元组类似 c++ 中的数组

# 一. 创建列表 , 列表中的成员可以重复, 且类型可以不同

# 1. 创建空列表
# a = []  # 列表符号 []
# b = list() # 用 list() 内置函数创建列表
#
# print(a)
# print(b)
# print(type(a))
# print(type(b))

#2. 字面值常量创建列表
# a = [1,2,3,4,5]
# b = list((6,7,8,9,10)) # 注意这里是 双圆括号~~~~!!
#
# print(a)
# print(b)


#3. 列表中可以类型不同
# a = [1,2,'hello',True,3,4]
# print(a)
# print(type(a))


#4. 列表的下标访问 , 与数组一致都是从 0 开始
# a = [1,2,3,4,5,6,7,8,9,10]
# #    0 1 2 3 4 5 6 7 8  9
# print(a[2])

# 5. 打印列表的所有元素
# a = [1,2,3,4,5,6,7,8,9,10]
#
# for i in a:  # i 是从1-10
#     print(a[i-1])

#6. 特别的下标可以是负数 - > 负的索引 , -1表示 len(a) -1 即最后一个元素
#求长度与字符串一致
# a = [1,2,3,4,5,6,7,8,9,10]
# lens = len(a)
# print(a)
# print(lens)
# print(a[1])
# print(a[-1]) # 倒数第一个元素
# print(a[-2]) # 倒数第二个元素

#7. 特点 : ~~~~~~~ 与元组不同之处 - > 可以改变元素
#将列表下标为2 的位置改为100
# a = [1,2,3,4,5,6,7,8,9,10]
# print(f"更改前: {a}")
# a[2] = 100
# print(f"更改后: {a}")


#切边操作
#得出子序列
# [:]
#类似 range 用法
#1. : 两边都不省略
# a = [1,2,3,4,5,6,7,8,9,10]
# #    0 1 2 3 4 5 6 7 8  9
# print(a[1:5]) # [) 为左闭右开

# #2. 省略左边
# a = [1,2,3,4,5,6,7,8,9,10]
# print(a[:8])  # 左边默认从 0 开始
#print(a[:-1]) # 下标可以是负数 -1即表示最后一个元素的位置

# #3. 省略右边
# a = [1,2,3,4,5,6,7,8,9,10]
# print(a[2:])  # 右边默认到结尾结束

#4. 左右都省略
# a = [1,2,3,4,5,6,7,8,9,10]
# print(a[:])  # 即列表本身
# print(a)

#5. ~~~~~步长~~~~~~~~
# a = [1,2,3,4,5,6,7,8,9,10]
# print(a[0:11:2])  # 步长为 2
# print(a[1:11:2])  # 步长为 2
# print(a[::-1])
# print(a[:-1])


#6. 打印列表元素

# a = [1,2,3,4,5,6,7,8,9,10]
#
# for NewList in a:
#     '''
#     这个是将列表 a 复制给了 NewList 形成一个新的列表
#     '''
#     print(NewList)


#7. 用 for 循环遍历 ,通过下标的方式访问

#a = [1,2,3,4,5,6,7,8,9,10]

# for i in range(0,a[-1]):
#     print(a[i])
#
# for i in range(0,len(a)):
#      print(a[i])


#7. 用 while 循环遍历 ,通过下标的方式访问

# a = [1,2,3,4,5,6,7,8,9,10]
#
# i = 0
# while i < len(a):
#     print(a[i])
#     i += 1


# 二. 查找元素

# 1. in 方法查找
# a = [1,2,3,4,5,6,7,8,9,10]
#
# print(0 in a)
# print(1 in a)
# print(0 not in a)
# print(1 not in a)

# 2. index 方法查找
# a = [1,2,3,4,5,6,7,8,9,10]
# #返回下标查找
# mid = a.index(3)   #index 返回的是下标
# print(mid)


# 三. 新增元素
# 1. 用 append 方法追加项目
# a = [1,2,3,4,5]
# a.append('hello')
# print(a)
# a.append(7)
# print(a)

# 2. 用 insert 指定位置插入
# a = [1,2,3,4,5]
# a.insert(2,'hello')
# print(a)

# 四. 删除元素
# 1. 用下标删除
# a = [1,2,3,4,5,6]
# a.pop(1)  # 默认为 -1 即最后一项
# print(a)
# a.pop()
# print(a)

#2. 按值删除
a = [1,2,3,4,5,6]

if 1 in a :
    a.remove(2)
    print(a)
else:
    print('删除失败!')